home *** CD-ROM | disk | FTP | other *** search
- /****i* SOURCE_FILE/INFO
- *
- * NAME
- * ImageOutputSettingsDlg.js
- *
- * USAGE
- * Part of Netobjects JavaScript Library.
- *
- * COPYRIGHT
- * Copyright ⌐ 2000-2005 Website Pros, Inc.
- * All Rights Reserved.
- *
- * This is an unpublished work protected by Website Pros, Inc.
- * as a trade secret, and is not to be used or disclosed except as
- * expressly provided in a written license agreement executed by
- * you and Website Pros, Inc.
- *
- * <copyright@websitepros.com>
- *
- * NOTES
- * JavaScript code.
- *
- *****/
-
- if (!IS.isModuleInitialized("IS.NOF.UI.ImageOutputSettingsDlg"))
- {
-
- /****h* NOF_JavaScript_Library/NOF.UI.ImageOutputSettingsDlg
- *
- * NAME
- * NOF.UI.ImageOutputSettingsDlg
- *
- * DESCRIPTION
- *
- * External dependencies: NOF.UI.ListEditorDlg, NOF.ImageOutputSettings, NOF.UTIL.Validator
- ****/
-
- function NOF_ImageOutputSettingsDlg (_editedElem, _document, _name, _validator, _newElem) {
- this.__proto__ = NOF_ImageOutputSettingsDlg.prototype;
- this.SUPER(_editedElem, _document, _name, _validator);
-
- this.newImgSettings = _newElem;
-
- this.IMG_QUALITY = new Array (4);
- this.IMG_QUALITY['low'] = 39;
- this.IMG_QUALITY['medium'] = 74;
- this.IMG_QUALITY['high'] = 99;
- this.IMG_QUALITY['maximum'] = 100;
-
- this.imageTypeId = "saveoutputsettings.select.imgType";
- this.imageQualityLevelId = "saveoutputsettings.select.qualityLevel";
- this.imageQualityId = "saveoutputsettings.text.quality";
- this.imagePaletteId = "saveoutputsettings.select.palette";
- this.imageColorsId = "saveoutputsettings.select.colors";
- this.imageTypeJPGDivId = "saveoutputsettings.div.jpeg";
- this.imageTypeGIFDivId = "saveoutputsettings.div.gif";
- }
-
- NOF_ImageOutputSettingsDlg.inherits( NOF.UI.ListEditorDlg);
- function NOF_ImageOutputSettingsDlg_ProtoBuilder () {
- var member = NOF_ImageOutputSettingsDlg.prototype;
- member.defaultName = "OUTPUTSETTINGS_DLG";
-
- var method = NOF_ImageOutputSettingsDlg.prototype;
-
- method.super_onLoad = method.onLoad;
- method.onLoad = function onLoad () {
- this.super_onLoad();
-
- this.loadImageType ();
- this.doc.disableElement ('form.button.ok');
- this.doc.disableElement ('form.button.remove');
- this.doc.focusElement ('form.text.label');
- }
-
- method.super_onRemove = method.onRemove;
- method.onRemove = function onRemove () {
- var settingToDelete = this.doc.getElementValue('form.select.list')[0];
- var ios = new NOF.ImageOutputSettings();
- ios.deleteConfigFile(settingToDelete);
- this.super_onRemove ();
- this.isModified = true;
- }
-
- method.super_onAdd = method.onAdd;
- method.onAdd = function onAdd () {
- var name = this.doc.getElementValue ('form.text.label');
- if (this.isModified == true) {
- this.updateItems();
- }
- var newItem = this.doc.getElementValue('form.text.label');
- newItem = trim(newItem);
- if (newItem.length > 0) {
- if (this.super_onAdd()) {
- this.saveImageSettings(name);
- this.newImgSettings.saveConfigFile(name);
- var elem = this.editedElement.addElementToList (name);
- this.editedElement.setSelectedByElement (elem);
- this.onOk();
- }
- else {
- this.doc.disableElement ('form.button.ok');
- return false;
- }
- }
- else {
- this.onOk();
- }
- }
-
- method.onOk = function onOk() {
- this.close();
- }
-
- method.super_onCancel = method.onCancel;
- method.onCancel = function onCancel () {
- if (this.isModified == true) {
- this.updateItems();
- }
- this.close();
- }
-
- method.onEnableOk = function onEnableOk () {
- this.doc.enableElement ('form.button.ok');
- }
-
- method.onDisableOk = function onDisableOk () {
- this.doc.disableElement ('form.button.ok');
- }
-
- method.onSetImageType = function onSetImageType () {
- var imgType = this.doc.getElementValue (this.imageTypeId)[0];
- this.switchImageType (imgType);
- }
-
- method.onSetQuality = function onSetQuality () {
- var qualityLevel = this.doc.getElementValue (this.imageQualityLevelId)[0];
- this.doc.setElementValue (this.imageQualityId,this.IMG_QUALITY[qualityLevel]);
- }
-
- method.onQualityChanged = function onQualityChanged () {
- var quality = eval(this.doc.getElementValue (this.imageQualityId));
- this.setQualityLevel (quality);
- }
-
- method.onIncreaseQuality = function onIncreaseQuality () {
- var quality = eval(this.doc.getElementValue (this.imageQualityId));
- if (quality < 100) {
- quality++;
- this.doc.setElementValue (this.imageQualityId, quality);
- this.setQualityLevel (quality);
- }
- }
-
- method.onDecreaseQuality = function onDecreaseQuality () {
- var quality = eval(this.doc.getElementValue (this.imageQualityId));
- if (quality > 0) {
- quality--;
- this.doc.setElementValue (this.imageQualityId, quality);
- this.setQualityLevel (quality);
- }
- }
-
- method.onValidatePaste = function onValidatePaste (id) {
- if (this.editedElement == null)
- return false;
- var validator = new NOF.UTIL.Validator();
- validator.setIsPercentage(true);
- validator.setLengthRequired(false);
- var str = this.win.clipboardData.getData("Text");
- var res = validator.validateInput(str, this.doc.getElementValue(id));
- return res;
- }
-
- method.onValidatePercent = function onValidatePercent (id) {
- var validator = new NOF.UTIL.Validator();
- validator.setIsPercentage(true);
- validator.setLengthRequired(false);
- var chr = String.fromCharCode(this.win.event.keyCode);
- var res = validator.validateInput(chr, this.doc.getElementValue(id));
- return res;
- }
-
- method.onValidateQuality = function ValidateQuality (id) {
- validator = new NOF.UTIL.Validator();
- validator.setIsDigit(true);
-
- var chr = String.fromCharCode(window.event.keyCode);
- var res = validator.validateInput(chr, this.doc.getElementValue(id));
- return res;
- }
-
- method.onPaletteChanged = function onPaletteChanged () {
- //debugger;
- }
-
- method.onColorChanged = function onColorChanged () {
- //debugger;
- }
-
- method.onSelectOutputSettings = function onSelectOutputSettings () {
- try {
- if (this.doc.getElementItems('form.select.list').length > 0)
- this.doc.enableElement ('form.button.remove');
- } catch (e) {}
- }
-
- method.setQualityLevel = function setQualityLevel (quality) {
- var level = 'maximum';
- var measure = 'high';
- if (this.IMG_QUALITY[measure] >= quality) {
- level = 'high';
- measure = 'medium';
- if (this.IMG_QUALITY[measure] >= quality) {
- level = 'medium';
- measure = 'low';
- if (this.IMG_QUALITY[measure] >= quality) {
- level = 'low';
- }
- }
- }
- this.doc.setElementValue (this.imageQualityLevelId, [level]);
- }
-
- method.loadImageType = function loadImageType () {
- var imgType = "";
- var gifDivAttr = "tabhide";
- var jpegDivAttr = "tabhide";
-
- var quality = this.newImgSettings.getQuality();
- var format = this.newImgSettings.getFormat();
- var palette;
- if (format.toLowerCase() == 'gif') {
- gifDivAttr = "tabshow";
- imgType = "GIF";
-
- palette = ( quality & 0xffff0000 ) / 0x10000;
- quality = ( quality & 0xffff );
- this.doc.setElementValue(this.imageColorsId, [quality]);
- this.doc.setElementValue (this.imagePaletteId, [palette]);
- }
- else {
- jpegDivAttr = "tabshow";
- imgType = "JPEG";
- this.doc.setElementValue (this.imageQualityId, quality);
- this.setQualityLevel (quality);
- }
- this.doc.setElementAttribute (this.imageTypeJPGDivId, "class", jpegDivAttr);
- this.doc.setElementAttribute (this.imageTypeGIFDivId, "class", gifDivAttr);
- this.doc.setElementValue (this.imageTypeId, imgType);
- }
-
- method.saveImageSettings = function saveImageSettings (name) {
- var imgType = this.doc.getElementValue (this.imageTypeId)[0];
- var quality = this.doc.getElementValue (this.imageQualityId) - 0;
- this.newImgSettings.setFormat (imgType);
- if (imgType.toLowerCase() == 'gif') {
- var palette = this.doc.getElementValue("saveoutputsettings.select.palette")[0] - 0;
- quality = ((this.doc.getElementValue("saveoutputsettings.select.colors")[0] - 0) & 0xffff) + (palette & 0xffff) * 0x10000;
- }
- this.newImgSettings.setQuality(quality);
- this.newImgSettings.setName (name);
- }
-
- method.switchImageType = function switchImageType (imgType) {
- var gifDivAttr = "tabhide";
- var jpegDivAttr = "tabhide";
- //if (imgType.toLowerCase() == "JPEG".toLowerCase() ||
- // imgType.toLowerCase() == "JPG".toLowerCase()) {
- if (imgType.toUpperCase() == "JPEG" ||
- imgType.toUpperCase() == "JPG") {
-
- jpegDivAttr = "tabshow";
- imgType = "JPEG";
-
- var q = this.doc.getElementValue(this.imageColorsId) || this.newImgSettings.getQuality();
- var quality = Math.min(100, Math.round(100/8)*(q));
- this.doc.setElementValue (this.imageQualityId, quality);
- this.setQualityLevel (quality);
- } else if (imgType.toUpperCase() == "GIF") {
- //(imgType.toLowerCase() == "GIF".toLowerCase()) {
- gifDivAttr = "tabshow";
- imgType = "GIF";
-
- var q = this.doc.getElementValue(this.imageQualityId) || this.newImgSettings.getQuality();
- var quality = Math.round( q *(8/100) );
- this.doc.setElementValue (this.imageColorsId, [quality]);
- }
- this.doc.setElementAttribute (this.imageTypeJPGDivId, "class", jpegDivAttr);
- this.doc.setElementAttribute (this.imageTypeGIFDivId, "class", gifDivAttr);
- this.doc.setElementValue (this.imageTypeId, imgType);
- }
-
- method.initFieldPropertyValues = function initFieldPropertyValues () {
- var fieldPropertyValue = new Array();
- fieldPropertyValue['form.text.label'] = 'saveoutputsettings.text.outputSettingName';
- fieldPropertyValue['form.select.list'] = 'saveoutputsettings.select.outputSettingsList';
- fieldPropertyValue['form.button.ok'] = 'saveoutputsettings.button.ok';
- fieldPropertyValue['form.button.remove'] = 'saveoutputsettings.button.remove';
- this.doc.setPropertyMap(fieldPropertyValue);
- }
-
- method.setItems = function setItems () {
- var listItems = this.getEditedElement().getListElements();
- var idx = listItems.length;
- if (idx > 0) {
- var j = 0;
- var items = new Array();
- for (var i=0;i<idx;i++) {
- if (listItems[i] != NOF_OSConstants.DEFAULT) {
- items[j] = listItems[i];
- j++;
- }
- }
- if (j>0)
- this.doc.setElementItems('form.select.list', items);
- }
- }
-
- method.saveItems = function saveItems () {
- this.updateItems();
- }
-
- method.updateItems = function updateItems() {
- var listItems = this.doc.getElementItems('form.select.list');
- listItems[listItems.length] = NOF_OSConstants.DEFAULT;
- this.editedElement.update(listItems);
- }
-
-
- }
-
- NOF_ImageOutputSettingsDlg_ProtoBuilder();
- UI.__proto__.ImageOutputSettingsDlg = NOF_ImageOutputSettingsDlg;
-
- }
-